package com.youlai.boot.system.model.dto;

import cn.idev.excel.annotation.ExcelProperty;
import cn.idev.excel.annotation.format.DateTimeFormat;
import cn.idev.excel.annotation.format.NumberFormat;
import cn.idev.excel.annotation.write.style.*;
import lombok.Data;
import cn.idev.excel.enums.BooleanEnum;
import cn.idev.excel.enums.poi.HorizontalAlignmentEnum;

import java.math.BigDecimal;

/**
 * 品牌数据Excel数据传输对象
 *
 * @author Jason
 * @since 2025/6/2
 */
@Data
@ColumnWidth(25) // 设置默认列宽
@HeadStyle(fillForegroundColor = 22) // 设置表头背景色浅灰色
@HeadFontStyle(fontHeightInPoints = 11, bold = BooleanEnum.TRUE) // 设置表头字体
@ContentFontStyle(fontHeightInPoints = 10) // 设置内容字体
@ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER)//设置字体居中
public class BrandExcelDTO {

    @ExcelProperty(value = "时间周期", order = 1)
    @ColumnWidth(20)
    private String timePeriod;

    @ExcelProperty(value = "品牌名称", order = 2)
    @ColumnWidth(30)
    private String brandName;

    @ExcelProperty(value = "一级类目", order = 3)
    @ColumnWidth(20)
    private String firstCategory;

    @ExcelProperty(value = "二级类目", order = 4)
    @ColumnWidth(20)
    private String secondCategory;

    @ExcelProperty(value = "三级类目", order = 5)
    @ColumnWidth(20)
    private String thirdCategory;

    @ExcelProperty(value = "经营模式", order = 6)
    @ColumnWidth(15)
    private String operationMode;

    @ExcelProperty(value = "浏览量", order = 7)
    @NumberFormat("#,##0")
    private Integer pageViews;

    @ExcelProperty(value = "访客数", order = 8)
    @NumberFormat("#,##0")
    private Integer visitorCount;

    @ExcelProperty(value = "人均浏览量", order = 9)
    @NumberFormat("0.00")
    private BigDecimal avgPageViewsPerVisitor;

    @ExcelProperty(value = "平均停留时长", order = 10)
    @NumberFormat("0.00")
    private BigDecimal avgStayTime;

    @ExcelProperty(value = "成交人数", order = 11)
    @NumberFormat("#,##0")
    private Integer transactionUserCount;

    @ExcelProperty(value = "成交转化率", order = 12)
    @NumberFormat("0.00%")
    private BigDecimal conversionRate;

    @ExcelProperty(value = "成交单量", order = 13)
    @NumberFormat("#,##0")
    private Integer transactionOrderCount;

    @ExcelProperty(value = "成交商品件数", order = 14)
    @NumberFormat("#,##0")
    private Integer transactionItemCount;

    @ExcelProperty(value = "成交金额", order = 15)
    @NumberFormat("¥#,##0.00")
    private BigDecimal transactionAmount;

    @ExcelProperty(value = "成交客单价", order = 16)
    @NumberFormat("¥#,##0.00")
    private BigDecimal averageTransactionValue;
} 